<?php

namespace addons\crontab\controller;

use addons\crontab\model\Crontab;
use think\Controller;
use think\Db;
use think\Exception;
use think\Log;

/**
 * 定时任务接口
 *
 * 以Crontab方式每分钟定时执行,且只可以Cli方式运行
 * @internal
 */
class Procure extends Controller
{

    /**
     * 初始化方法,最前且始终执行
     */
    public function _initialize()
    {
        // 只可以以cli方式执行
        if (!$this->request->isCli()) {
            $this->error('Autotask script only work at client!');
        }

        parent::_initialize();

        // 清除错误
        error_reporting(0);

        // 设置永不超时
        set_time_limit(0);
    }

    /**
     * 执行定时任务
     */
    public function index()
    {
        $this->getData();
        return;
    }

    /**
     * 同步数据
     */
    public function getData()
    {
        Db::startTrans();
        try {
            $procure = new \app\admin\model\inventory\Procure;
            $procure->getProcureData(0);//采购订单
            $procure->getProcureData(2);//研发中心 生产任务
            Db::commit();
            //Log::info('计划任务-采购同步完成');
        }catch (Exception $e){
            Db::rollback();
            Log::error('计划任务-采购同步失败'.$e->getMessage());
        }
    }
}
